package com.lihepeng.leecode.classic.binarySearch;

import org.junit.Test;

/**
 * 给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。
 *
 * 你可以假设数组中无重复元素。
 */
public class Solution35 {
    /**
     * 使用二分查找法 完成
     *
     * @param nums
     * @param target
     * @return
     */
    public int searchInsert(int[] nums, int target) {
        int right = nums.length-1;
        int left =0;
        while(left<=right){
            int mid = left+((right-left)>>1);
            if (nums[mid]<target){
                left = mid+1;
            }else if (nums[mid]>target){
                right = mid-1;
            }else {
                return mid;
            }

        }
        return left;
    }

    @Test
    public void runTest(){
        int[] arrs = {1,2,5,7,9,10};
        System.out.println(searchInsert(arrs,8));
    }
}
